2D Arrays

1) Introdução

Frequentemente (e de fato, nos exercícios desta semana!) estamos interessados em representar arrays bidimensionais (grades, matrizes, etc) em programas. Python não tem uma estrutura embutida para representar arrays 2D, mas podemos representar essa estrutura usando listas de listas!

Considere a seguinte lista:

x = [[1, 2, 3], [4, 5, 6]]

Esta lista contém uma representação de uma grade bidimensional contendo vários elementos:

123
456

Como podemos acessar esses elementos? Indexando na lista mais externa e, em seguida, em suas listas internas.

Por exemplo, se fizéssemos:

y = x[0]

y então conteria a primeira sublista ([1, 2, 3]). Graficamente, podemos ver isso como selecionando a primeira linha na grade.

Então, podemos pegar um valor específico com:

z = y[2]

Isso pega o elemento no índice 2 da lista, o que nos dá 3. O que fizemos foi pegar o elemento na linha 0 e na coluna 2, pegando o elemento na lista externa no índice 0 e, em seguida, o elemento naquele resultado em índice 2.

Também poderíamos ter feito isso em uma etapa:

z = x[0][2]

Ou, de forma mais geral, para capturar o elemento em uma determinada linha r e coluna c:

x[r][c]

2) Exemplo de grade

Considere a lista de listas que representa a tabela a seguir e suponha que ela esteja armazenada em uma variável chamada grid.

957
264
108

Quais são os valores das seguintes expressões? Se uma expressão gerar um erro, digite error na caixa.

grid[1][1]

grid[2]

grid[0][3]

grid[2][2]

grid[3][1]

grid